Towards Testing Concurrent Objects in CLP
نویسندگان
چکیده
Testing is a vital part of the software development process. It is even more so in the context of concurrent languages, since due to undesired task interleavings and to unexpected behaviours of the underlying task scheduler, errors can go easily undetected. This paper studies the extension of the CLP-based framework for glass-box test data generation of sequential programs to the context of concurrent objects, a concurrency model which constitutes a promising solution to concurrency in OO languages. Our framework combines standard termination and coverage criteria used for testing sequential programs with specific criteria which control termination and coverage from the concurrency point of view, e.g., we can limit the number of task interleavings allowed and the number of loop unrollings performed in each parallel component, etc. 1998 ACM Subject Classification D.2.5 Testing and Debugging, D.1.3 Concurrent Programming, D.1.6 Logic Programming, D.1.5 Object-oriented Programming
منابع مشابه
Test Case Generation by Symbolic Execution: Basic Concepts, a CLP-Based Instance, and Actor-Based Concurrency
The focus of this tutorial is white-box test case generation (TCG) based on symbolic execution. Symbolic execution consists in executing a program with the contents of its input arguments being symbolic variables rather than concrete values. A symbolic execution tree characterizes the set of execution paths explored during the symbolic execution of a program. Test cases can be then obtained fro...
متن کاملTowards a Concurrent Semantics based Analysis of CC and CLP
We present in an informal way some preliminary results on the investigation of e cient compile-time techniques for Constraint Logic [JL87] and Concurrent Constraint [Sar89] Programming. These techniques are viewed as sourceto-source program transformations between the two programming paradigms and are based on a concurrent semantics of CC programs [MR91]. Previous work [BH92] showed that it is ...
متن کاملTowards a glass-box typed CLP language
Constraint Logic Programming (CLP) merges two declarative paradigms: constraint solving and logic programming. This combination increases the efficiency of logical programming languages and, in some cases, makes programs more expressive than other kinds of programs. CLP has progressed in several quite different directions such as parallelism, concurrency, development of satisfiable algorithms i...
متن کاملUnder Consideration for Publication in Theory and Practice of Logic Programming Book Review
Constraint programming is a very active research area that lies at the intersection of AI, OR, Programming Languages, Data Bases, and Graph Theory, and whose main aim is to model naturally and solve efficiently real-life problems that can be cast as a set of objects and a set of restrictions (that is, constraints) on how these objects can co-exist in the same problem. Constraint programming sta...
متن کاملConcurrent Web-Programming in CLP(WEB)
Recent research has placed emphasis on the need for support for concurrency in the context of programming for the World-Wide Web (W3). Frameworks like WebL, LogicWeb, and Jinny make concurrency a key component of their W3 support. In this work we analyze the concurrent capabilities of CLP(WEB), a W3-oriented logic-based concurrent framework. CLP(WEB) offers two forms of concurrency, or-concurre...
متن کامل